/**
 * Project Name:bfs
 * File Name:ConfigurationManagementService.java
 * Package Name:com.zeei.dsas.service
 * Date:2016年9月28日下午3:29:33
 * Copyright (c) 2016, ZEEI All Rights Reserved. *
 *
 * ClassName:ConfigurationManagementService 
 * Function: TODO ADD FUNCTION.  
 * @author   chq
 * @since    JDK 1.8	 
 */

package com.zeei.bfs.service;

import java.util.List;
import java.util.Map;

import com.github.pagehelper.PageInfo;
import com.zeei.bfs.vo.GeneralCategory;
import com.zeei.bfs.vo.RoleButtonVO;
import com.zeei.bfs.vo.SystemLog;
import com.zeei.bfs.vo.UserButtonVO;
import com.zeei.common.vo.PointSysTypeVO;

public interface ConfigurationManagementService {
	/**
	 * 
	 * systemLogManagement:(查询系统日志).
	 *
	 * @param systemLogparam
	 * @return
	 */
	public PageInfo<SystemLog> systemLogManagement(SystemLog systemLogparam);

	/**
	 * 
	 * dictionaryManagement:(查询通用字典信息).
	 *
	 * @param generalCategoryParam
	 * @return
	 */
	public PageInfo<GeneralCategory> dictionaryManagement(GeneralCategory generalCategoryParam);

	/**
	 * dictionaryEdit:(更改通用字典信息).
	 *
	 * @param generalCategoryParam
	 * @param oldGeneralCode
	 * @return
	 */
	public boolean editDictionary(GeneralCategory generalCategoryParam, String oldGeneralCode);

	/**
	 * 
	 * dictionaryEdit:(删除通用字典信息).
	 *
	 * @param generalCategoryParam
	 * @return
	 */
	public boolean dropDictionary(String generalCode);

	/**
	 * 
	 * dictionaryEdit:(新增通用字典信息).
	 *
	 * @param generalCategoryParam
	 * @return
	 */
	public boolean addDictionary(GeneralCategory generalCategoryParam);

	/**
	 * 
	 * dictionaryEdit:(查询通用字典类别).
	 *
	 * @param generalCategoryParam
	 * @return
	 */
	public List<GeneralCategory> getCategoryClass();

	/**
	 * 
	 * dictionaryEdit:(查询通用字典).
	 *
	 * @param generalCategoryParam
	 * @return
	 */
	public List<GeneralCategory> getCategoryList(String categoryclass);

	public boolean validGeneralCode(String generalCode);

	/**
	 * 方法描述:验证字典类别编码
	 *
	 * @param categoryClass
	 * @return
	 */
	public boolean validCategoryClass(String categoryClass);

	/**
	 * 方法描述:验证字典类别名称
	 *
	 * @param categoryName
	 * @return
	 */
	public boolean validCategoryName(String categoryName);

	/**
	 * 方法描述:添加字典类型
	 *
	 * @param generalCategoryParam
	 * @return
	 */
	public boolean addDictionaryType(GeneralCategory generalCategoryParam);

	/**
	 * 方法描述:批量删除字典
	 *
	 * @param list
	 * @return
	 */
	public boolean dropDictionary(List<String> list);

	public List<RoleButtonVO> getRoleButton();

	public List<UserButtonVO> getUserButton();

	/**
	 * 方法描述:通过系统类型获取系统下的字典信息
	 *
	 * @param categoryclass
	 * @param systemType
	 * @return
	 */
	List<GeneralCategory> getCategoryListBySystemType(String categoryclass, String systemType);

	/**
	 * 方法描述:查询数据库存在的表
	 *
	 * @param tableNames
	 * @return
	 */
	public List<String> getExistsTable(List<String> tableNames);

	public List<PointSysTypeVO> getSystemTable(int systemType);

	/**
	 * 方法描述:通过条件查询字典信息
	 *
	 * @param condition
	 * @return
	 */
	public List<GeneralCategory> queryCategoryClassBySystemType(Map<String, Object> condition);
}
